package lormi.meipin.controller.api;

import lormi.meipin.common.Result;
import lormi.meipin.controller.BaseController;
import lormi.meipin.dto.TrainedAddDto;
import lormi.meipin.dto.TrainedEditDto;
import lormi.meipin.exception.LMException;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;


@RestController
@RequestMapping(value="v2/trained",method=RequestMethod.POST,produces = "application/json; charset=utf-8")
public class TrainedController extends BaseController{

	/**
	 * 获取培训经历列表   
	 * @Param userid 用户ID
	 * @Param usertype 用户类型
	 * */
	@RequestMapping("list")
	public String getTraineds(Integer userid) throws LMException{
		return Result.success(trainedService.getList(userid));
	}
	
	/**
	 * 获取单个培训经历   
	 * @Param userid 用户ID
	 * @Param usertype 用户类型
	 * @Param id 培训经历ID
	 * */
	@RequestMapping("get")
	@Valid
	public String getTrainedOne(@NotNull(message="100033") @RequestParam(value="id",required=false) Integer id) throws LMException{
		return Result.success(trainedService.getTrained(id));
	}
		
	/**
	 * 修改单个培训经历   
	 * @Param userid 用户ID
	 * @Param usertype 用户类型
	 * @Param id 培训经历ID
	 * @Param schoolname 学校名称
	 * @Param education 培训等级（初级，中级，高级）
	 * @Param positionclass 专业(自己输入)
	 * @Param begin 开始时间
	 * @Param end 结束时间
	 * */ 
	@RequestMapping("edit")
	@ResponseBody
	public String editTrained(@Valid TrainedEditDto trainedEditDto,BindingResult result) throws LMException{
		checkResult(result);
		
		trainedService.editTrained(trainedEditDto);		
		return Result.success();
	}
	
	/**
	 * 添加单个培训经历   
	 * @Param userid 用户ID
	 * @Param usertype 用户类型
	 * @Param schoolname 学校名称
	 * @Param education 培训等级（初级，中级，高级）
	 * @Param positionclass 专业(自己输入)
	 * @Param begin 开始时间
	 * @Param end 结束时间
	 * */ 
	@RequestMapping("add")
	public String addTrained(@Valid TrainedAddDto trainedAddDto,BindingResult result) throws LMException{
		checkResult(result);
		
		trainedService.addTrained(trainedAddDto);
		return Result.success();
	}
	
	/**
	 * 删除单个培训经历   
	 * @Param userid 用户ID
	 * @Param usertype 用户类型
	 * @Param id 培训经历ID
	 * */ 
	@RequestMapping("delete")
	@Valid
	public String delTrained(@NotNull(message="100033") @RequestParam(value="id",required=false) Integer id) throws LMException{
		
		trainedService.delTrained(id);
		return Result.success();
	}
	
}
